<template>
  <div class="result">
    <van-nav-bar
      fixed
      :title="keyword + '的搜索结果'"
      left-arrow
      @click-left="$router.back()"
    ></van-nav-bar>
    <van-list
      v-model="loading"
      :finished="finished"
      finished-text="没有更多了"
      @load="onLoad"
    >
      <van-cell
        @click="$router.push('/detail/' + item.art_id)"
        v-for="(item, index) in list"
        :key="index"
        :title="item.title"
      />
    </van-list>
  </div>
</template>

<script>
import { getSearch } from '@/api/search'
export default {
  name: 'SearchResult',
  computed: {
    keyword() {
      return this.$route.query.keyword
    }
  },
  data() {
    return {
      list: [],
      loading: false,
      finished: false,
      page: 1
    }
  },
  methods: {
    async onLoad() {
      const res = await getSearch(this.page, this.keyword)
      console.log(res)
      this.list = [...this.list, ...res.data.results]
      this.loading = false
      // ⭐⭐判断page++写在ajax发起前还是后
      // 加载完成后 page++ 因为没有默认打开从此接口加载第1页 第一次就是发送onlod请求加载
      // 第一页的数据也需要获取一次 所以要后++
      // 网易云在ajax发送前++是因为 输入时已经触发获取同一ajax接口的 第1页数据了 下拉就应该从第2页开始加载
      this.page++
      if (res.data.results.length === 0) {
        this.finished = true
      }
    }
  }
}
</script>

<style lang="less" scoped>
.result {
  padding-top: 46px;
}
</style>
